#pragma once

#include "IXHwnd.h"

/**
 *  IXEdit Interface.
 *
 */
class ExportXSkinLib IXEdit : public IXHwnd
{
    DEF_INTERFACE(IXEdit, _T("{8A53F5B4-84F8-4442-86DF-A8027F6D02E9}"));

public:
    virtual DWORD   STDMETHODCALLTYPE   get_MaxCount() = 0;
    virtual void    STDMETHODCALLTYPE   put_MaxCount(IN DWORD dwCount) = 0;

    virtual BOOL    STDMETHODCALLTYPE   get_ReadOnly() = 0;
    virtual void    STDMETHODCALLTYPE   put_ReadOnly(IN BOOL bReadOnly) = 0;

    virtual HRESULT STDMETHODCALLTYPE   get_HintText(OUT BSTR* pbstrHint) = 0;
    virtual void    STDMETHODCALLTYPE   put_HintText(IN LPCTSTR szHint) = 0;

    virtual COLORREF STDMETHODCALLTYPE  get_HintTextColor() = 0;
    virtual void    STDMETHODCALLTYPE   put_HintTextColor(IN COLORREF clrHint) = 0;

    virtual BOOL    STDMETHODCALLTYPE   get_Multiline() = 0;
    virtual void    STDMETHODCALLTYPE   put_Multiline(IN BOOL bMultiline) = 0;

    virtual BOOL    STDMETHODCALLTYPE   get_AutoHScroll() = 0;
    virtual void    STDMETHODCALLTYPE   put_AutoHScroll(IN BOOL bAutoScroll) = 0;

    virtual BOOL    STDMETHODCALLTYPE   get_AutoVScroll() = 0;
    virtual void    STDMETHODCALLTYPE   put_AutoVScroll(IN BOOL bAutoScroll) = 0;
};

// lParam: XWND to Edit
#define EditEvent_Change    _T("EvtEditChange")

// lParam: XWND to Edit
#define EditEvent_SetFocus  _T("EvtEditSetFocus")

// lParam: XWND to Edit
#define EditEvent_KillFocus _T("EvtEditKillFocus")

// lParam: XWND to Edit
#define EditEvent_Update    _T("EvtEditUpdate")

